完成品質掃描與測試後,下一個關鍵問題是:我們該如何將程式碼交付給用戶?這就是 CD(持續交付/持續部署)的核心命題。在進入具體的部署腳本之前,我們必須先建立正確的戰略觀點:環境晉升 (Environment Promotion) 與 不可變產出物 (Immutable Artifacts)。
在專業的開發流程中,我們通常會經歷多個環境:
核心原則:我們不應該在每個環境都「重新編譯」一次原始碼。相反,我們應該在 CI 階段只編譯一次,產生一個產出物,然後讓這個產出物「晉升」到不同的環境。這能確保我們在不同環境測試的是完全相同的程式碼邏輯。
為什麼「一次編譯,到處部署」如此重要?
如果產出物(如 .dll, .exe 或容器鏡像)是不可變的,那不同環境的差異(如資料庫連線字串、API Key)該如何處理?
這就是 配置與邏輯分離 的重要性。常見的策略有:
appsettings.json)。在本系列接下來的實作中,我們將採用一個特殊的架構來克服組織內網限制:
具體流程如下:
CD 是一套關於「信任」的機制。透過環境晉升與不可變產出物,我們建立了對發布流程的信心。
明天,我們將回到 Jenkins Shared Library,看看如何設計一套具備靈活配置能力的 CD 共享庫,以應對 AI 生成的大量專案需求。